package study.spring.core.aop;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 * 一个非单例的 bean, 测试 aspect 切面 bean 默认为 单例模式
 */
@Component
@Scope("prototype")
public class TargetObjectPrototype {
  protected final Log log = LogFactory.getLog(getClass());

  // 单例 aspect bean使用的连接点
  public void singletonAspectUse() {
    log.info("这是target bean在执行, 它自己的hashcode: " + this.hashCode() + ", 切入它的aspect bean是单例");
  }

  // 原型 aspect bean使用的连接点
  public void prototypeAspectUse() {
    log.info("这是target bean在执行, 它自己的hashcode: " + this.hashCode());
  }
}
